package com.stylefeng.guns.rest.modular.applications.service;


import com.stylefeng.guns.rest.common.persistence.model.*;

import java.util.List;


public interface IMovieService
{

	List<LiveType> liveTypes();


	/**
	 *
	 * 方法名称: LiveMovesByParams
	 * 方法描述: 根据风格、类型、系列查询电影列表
	 * 创建人： afei
	 * 创建时间 2018年9月21日  下午2:16:29
	 * @param
	 * @return List<LiveMove>
	 * @throws
	 */
	List<LiveMoviesBO> liveMovesByParams(LiveMovieVo liveMove);

	/**
	 * 获取首页当前类型6部电影
	 */
	List<LiveMove> homeChangeMovies(LiveMovieVo liveMove);

	/**
	 * 根据影视类型分页查询数据
	 */
	List<LiveMove>  moviesPage(LiveMovieVo liveMove);

	/**
	 *
	 * 方法名称: liveBanners
	 * 方法描述: 获取所有广告
	 * 创建人： afei
	 * 创建时间 2018年9月22日  下午6:05:21
	 * @param
	 * @return List<LiveBanner>
	 * @throws
	 */
	List<LiveBanner> liveBanners(LiveBanner record);

	/**
	 *
	 * 方法名称: isExist
	 * 方法描述:判断这个token是否存在
	 * 创建人： afei
	 * 创建时间 2018年9月22日  下午7:35:04
	 * @param
	 * @return boolean
	 * @throws
	 */
	boolean isExist(String token);

	/**
	 *
	 * 方法名称: queryByToken
	 * 方法描述: 根据token查询用户
	 * 创建人： afei
	 * 创建时间 2018年9月23日  下午12:40:08
	 * @param
	 * @return LiveAccount
	 * @throws
	 */
	LiveAccountBO queryByToken(String token);


	boolean isVip(String token);

	/**
	 *
	 * 方法名称: selectLiveSeries
	 * 方法描述:查询系列列表
	 * 创建人： afei
	 * 创建时间 2018年9月23日  下午8:19:09
	 * @param
	 * @return List<LiveSeries>
	 * @throws
	 */
	List<LiveSeries> selectLiveSeries();

	/**
	 *  更新电影观看次数
	 */
	void updateWatchCount(Integer movieId);

	MovieShare selectByParams(MovieShare record);

	AppVersion selectByType(String  type);

	//更新会员到期时间及其状态
	void updateVipTime(String account,Integer vipType);

	List<MovieSeriesRecord> selectByParams(MovieSeriesRecord record);

	void insertSelective(MoviePayRecords record);

	int insertSelective(MoviePayApplyRecord record);

	MoviePayApplyRecord selectByPrimaryKey(Integer id);

	int updateByPrimaryKeySelective(MoviePayApplyRecord record);

	void   updateVipStatus(MoviePayRecords moviePayRecords);

	//根据开通会员类型查询信息
	MovieVip selectByParams(Integer vipType);

	//所以支付申请记录
	List<MoviePayApplyRecord>   payApplyRecord(String accountId);
}
